"""自定义的密码验证器"""

from django.core.exceptions import ValidationError
from django.utils.translation import gettext as _


class CustomPasswordValidator:
    def validate(self, password, user=None):
        # 检查密码长度
        if len(password) < 4:
            raise ValidationError(
                _("密码长度必须至少为 4 个字符。"),
                code='password_too_short',
            )

        # 检查密码是否完全由数字组成
        if password.isdigit():
            raise ValidationError(
                _("密码不能完全由数字组成。"),
                code='password_entirely_numeric',
            )

        # 检查密码由字母组成（即不包含数字或其他字符）
        if password.isalpha():
            raise ValidationError(
                _("密码不能完全由字母组成。"),
                code='password_entirely_alphabetic',
            )

    def get_help_text(self):
        return _("密码长度至少为4个字符，且不能由纯数字或纯字母组成。")
